Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Set operations (SQL)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Set_operations_(SQL)"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.math.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Set_operations_SQL rootpage-Set_operations_SQL skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Set operations (SQL)</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>

<p><b>Set operations</b> in <a href="SQL" title="SQL">SQL</a> is a type of operations which allow the results of multiple queries to be combined into a single <a href="Result_set" title="Result set">result set</a>.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>Set operators in SQL include <code>UNION</code>, <code>INTERSECT</code>, and <code>EXCEPT</code>, which <a href="Set_theory" title="Set theory">mathematically</a> correspond to the concepts of <a href="Union_(set_theory)" title="Union (set theory)">union</a>, <a href="Intersection_(set_theory)" title="Intersection (set theory)">intersection</a> and <a href="Set_difference" class="mw-redirect" title="Set difference">set difference</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="UNION_operator">UNION operator</h2></div>
<p>In <a href="SQL" title="SQL">SQL</a> the <b><code>UNION</code></b> clause combines the results of two SQL queries into a single <a href="Table_(database)" title="Table (database)">table</a> of all matching <a href="Row_(database)" title="Row (database)">rows</a>. The two queries must result in the same number of <a href="Column_(database)" title="Column (database)">columns</a> and compatible <a href="Data_type" title="Data type">data types</a> in order to unite. Any duplicate records are automatically removed unless <code>UNION ALL</code> is used.
</p><p><code>UNION</code> can be useful in <a href="Data_warehouse" title="Data warehouse">data warehouse</a> applications where tables are not perfectly <a href="Database_normalization" title="Database normalization">normalized</a>.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> A simple example would be a database having tables <code>sales2005</code> and <code>sales2006</code> that have identical structures but are separated because of performance considerations. A <code>UNION</code> query could combine results from both tables.
</p><p>Note that <code>UNION ALL</code> does not guarantee the order of rows. Rows from the second operand may appear before, after, or mixed with rows from the first operand. In situations where a specific order is desired, <code>ORDER BY</code> must be used.
</p><p>Note that <code>UNION ALL</code> may be much faster than plain <code>UNION</code>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Examples">Examples</h3></div>
<p>Given these two tables:
</p>
<table class="wikitable" style="text-align:center">
<caption>sales2005
</caption>
<tbody><tr>
<th>person</th>
<th>amount
</th></tr>
<tr>
<td>Joe</td>
<td>1000
</td></tr>
<tr>
<td>Alex</td>
<td>2000
</td></tr>
<tr>
<td>Bob</td>
<td>5000
</td></tr></tbody></table>
<table class="wikitable" style="text-align:center">
<caption>sales2006
</caption>
<tbody><tr>
<th>person</th>
<th>amount
</th></tr>
<tr>
<td>Joe</td>
<td>2000
</td></tr>
<tr>
<td>Alex</td>
<td>2000
</td></tr>
<tr>
<td>Zach</td>
<td>35000
</td></tr></tbody></table>
<p>Executing this statement:
</p>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">sales2005</span>
<span class="k">UNION</span>
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">sales2006</span><span class="p">;</span>
</pre></div>
<p>yields this result set, though the order of the rows can vary because no <code>ORDER BY</code> clause was supplied:
</p>
<table class="wikitable" style="text-align:center">

<tbody><tr>
<th>person</th>
<th>amount
</th></tr>
<tr>
<td>Joe</td>
<td>1000
</td></tr>
<tr>
<td>Alex</td>
<td>2000
</td></tr>
<tr>
<td>Bob</td>
<td>5000
</td></tr>
<tr>
<td>Joe</td>
<td>2000
</td></tr>
<tr>
<td>Zach</td>
<td>35000
</td></tr></tbody></table>
<p>Note that there are two rows for Joe because those rows are distinct across their columns. There is only one row for Alex because those rows are not distinct for both columns.
</p><p><code>UNION ALL</code> gives different results, because it will not eliminate duplicates. Executing this statement:
</p>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">sales2005</span>
<span class="k">UNION</span><span class="w"> </span><span class="k">ALL</span>
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">sales2006</span><span class="p">;</span>
</pre></div>
<p>would give these results, again allowing variance for the lack of an <code>ORDER BY</code> statement:
</p>
<table class="wikitable" style="text-align:center">

<tbody><tr>
<th>person</th>
<th>amount
</th></tr>
<tr>
<td>Joe</td>
<td>1000
</td></tr>
<tr>
<td>Joe</td>
<td>2000
</td></tr>
<tr>
<td>Alex</td>
<td>2000
</td></tr>
<tr>
<td>Alex</td>
<td>2000
</td></tr>
<tr>
<td>Bob</td>
<td>5000
</td></tr>
<tr>
<td>Zach</td>
<td>35000
</td></tr></tbody></table>
<p>The discussion of <a href="Join_(SQL)#Full_outer_join" title="Join (SQL)">full outer joins</a> also has an example that uses <code>UNION</code>.
</p>
<div class="mw-heading mw-heading2"><h2 id="INTERSECT_operator">INTERSECT operator</h2></div>
<p>The SQL <code>INTERSECT</code> operator takes the results of two queries and returns only rows that appear in both result sets. For purposes of duplicate removal the <code>INTERSECT</code> operator does not distinguish between <code><a href="Null_(SQL)" title="Null (SQL)">NULLs</a></code>. The <code>INTERSECT</code> operator removes duplicate rows from the final result set. The <code>INTERSECT ALL</code> operator does not remove duplicate rows from the final result set, but if a row appears X times in the first query and Y times in the second, it will appear <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \min(X,Y)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo movablelimits="true" form="prefix">min</mo>
<mo stretchy="false">(</mo>
<mi>X</mi>
<mo>,</mo>
<mi>Y</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \min(X,Y)}</annotation>
</semantics>
</math></span><img src="./c32fff29e1eafebcfe79dbfd64fe0ff1967bcdaa.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:10.472ex; height:2.843ex;" alt="{\displaystyle \min(X,Y)}" loading="lazy"></span> times in the result set.
</p>
<div class="mw-heading mw-heading3"><h3 id="Example">Example</h3></div>
<p>The following example <code>INTERSECT</code> query returns all rows from the Orders table where Quantity is between 50 and 100.
</p>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span>
<span class="k">FROM</span><span class="w"> </span><span class="n">Orders</span>
<span class="k">WHERE</span><span class="w"> </span><span class="n">Quantity</span><span class="w"> </span><span class="k">BETWEEN</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="mi">100</span>

<span class="k">INTERSECT</span>

<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span>
<span class="k">FROM</span><span class="w"> </span><span class="n">Orders</span>
<span class="k">WHERE</span><span class="w"> </span><span class="n">Quantity</span><span class="w"> </span><span class="k">BETWEEN</span><span class="w"> </span><span class="mi">50</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="mi">200</span><span class="p">;</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="EXCEPT_operator">EXCEPT operator</h2></div>
<p>The SQL <code>EXCEPT</code> operator takes the distinct rows of one query and returns the rows that do not appear in a second result set. For purposes of row elimination and duplicate removal, the <code>EXCEPT</code> operator does not distinguish between <code><a href="Null_(SQL)" title="Null (SQL)">NULLs</a></code>. The <code>EXCEPT ALL</code> operator does not remove duplicates, but if a row appears X times in the first query and Y times in the second, it will appear <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \max(X-Y,0)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo movablelimits="true" form="prefix">max</mo>
<mo stretchy="false">(</mo>
<mi>X</mi>
<mo>−<!-- − --></mo>
<mi>Y</mi>
<mo>,</mo>
<mn>0</mn>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \max(X-Y,0)}</annotation>
</semantics>
</math></span><img src="./b689c76d100c33a0df00298a3cbfab2192f7dfc1.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:14.925ex; height:2.843ex;" alt="{\displaystyle \max(X-Y,0)}" loading="lazy"></span> times in the result set.
</p><p>Notably, the Oracle platform provides a <code>MINUS</code> operator which is functionally equivalent to the <a href="SQL%3A2003" title="SQL:2003">SQL standard</a> <code>EXCEPT DISTINCT</code> operator.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Example_2">Example</h3></div>
<p>The following example <code>EXCEPT</code> query returns all rows from the Orders table where Quantity is between 1 and 49, and those with a Quantity between 76 and 100.
</p><p>Worded another way; the query returns all rows where the Quantity is between 1 and 100, apart from rows where the quantity is between 50 and 75.
</p>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span>
<span class="k">FROM</span><span class="w"> </span><span class="n">Orders</span>
<span class="k">WHERE</span><span class="w"> </span><span class="n">Quantity</span><span class="w"> </span><span class="k">BETWEEN</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="mi">100</span>

<span class="k">EXCEPT</span>

<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span>
<span class="k">FROM</span><span class="w"> </span><span class="n">Orders</span>
<span class="k">WHERE</span><span class="w"> </span><span class="n">Quantity</span><span class="w"> </span><span class="k">BETWEEN</span><span class="w"> </span><span class="mi">50</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="mi">75</span><span class="p">;</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Example_3">Example</h3></div>
<p>The following example is equivalent to the above example but without using the <code>EXCEPT</code> operator.
</p>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span class="k">SELECT</span><span class="w"> </span><span class="n">o1</span><span class="p">.</span><span class="o">*</span>
<span class="k">FROM</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span>
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">Orders</span>
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">Quantity</span><span class="w"> </span><span class="k">BETWEEN</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="mi">100</span><span class="p">)</span><span class="w"> </span><span class="n">o1</span>
<span class="k">LEFT</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span>
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">Orders</span>
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">Quantity</span><span class="w"> </span><span class="k">BETWEEN</span><span class="w"> </span><span class="mi">50</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="mi">75</span><span class="p">)</span><span class="w"> </span><span class="n">o2</span>
<span class="k">ON</span><span class="w"> </span><span class="n">o1</span><span class="p">.</span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">o2</span><span class="p">.</span><span class="n">id</span>
<span class="k">WHERE</span><span class="w"> </span><span class="n">o2</span><span class="p">.</span><span class="n">id</span><span class="w"> </span><span class="k">IS</span><span class="w"> </span><span class="k">NULL</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Union_(set_theory)" title="Union (set theory)">Union (set theory)</a></li>
<li><a href="Join_(SQL)" title="Join (SQL)">Join (SQL)</a></li>
<li><a href="SQL%3A2003" title="SQL:2003">SQL:2003</a></li>
<li><a href="Select_(SQL)" title="Select (SQL)">Select (SQL)</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.oracle.com/cd/B28359_01/server.111/b28286/queries004.htm">"The UNION [ALL], INTERSECT, MINUS Operators"</a>. Oracle<span class="reference-accessdate">. Retrieved <span class="nowrap">14 July</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text">"<cite>a <code>UNION ALL</code> views technique for managing maintenance and performance in your large data warehouse environment ... This <code>UNION ALL</code> technique has saved many of my clients with issues related to time-sensitive database designs. These databases usually have an extremely volatile current timeframe, month, or day portion and the older data is rarely updated. Using different container DASD allocations, tablespaces, tables, and index definitions, the settings can be tuned for the specific performance considerations for these different volatility levels and update frequency situations.</cite>" <a rel="nofollow" class="external text" href="http://www.dbazine.com/datawarehouse/dw-articles/beulke4">Terabyte Data Warehouse Table Design Choices - Part 2</a> (accessed on July 25, 2006)</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text">"E071-03, <code>EXCEPT DISTINCT</code> table operator: Use <code>MINUS</code> instead of <code>EXCEPT DISTINCT</code>" <cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://docs.oracle.com/cd/B28359_01/server.111/b28286/ap_standard_sql003.htm#g14847">"Oracle Compliance To Core SQL:2003"</a>. <i>Docs.oracle.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">7 July</span> 2022</span>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://msdn2.microsoft.com/en-us/library/ms180026.aspx">MSDN documentation on UNION in Transact-SQL for SQL Server</a></li>
<li><a rel="nofollow" class="external text" href="http://www.sqlexpert.co.uk/2007/11/order-by-clause-in-statements-with.html">Naming of select list items in set operations</a></li>
<li><a rel="nofollow" class="external text" href="http://www.mysqltutorial.org/sql-union-mysql.aspx">UNION in MySQL with Examples</a></li>
<li><a rel="nofollow" class="external text" href="http://dev.mysql.com/doc/refman/5.0/en/union.html">UNION in MySQL</a></li>
<li><a rel="nofollow" class="external text" href="http://www.postgresql.org/docs/current/static/sql-select.html#SQL-UNION">UNION Clause in PostgreSQL</a></li>
<li><a rel="nofollow" class="external text" href="https://www.w3schools.com/sql/sql_union.asp">SQL UNION and UNION ALL</a></li>
<li><a rel="nofollow" class="external text" href="http://www.sqlexpert.co.uk/2007/11/order-by-clause-in-statements-with.html">Sort order within UNION statement</a></li>
<li><a rel="nofollow" class="external text" href="http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.dwe.tutorial.doc/tutetlmod1_lesson2.htm">Designing a data flow that loads a warehouse table</a></li>
<li><a rel="nofollow" class="external text" href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/queries004.htm">Oracle 11g documentation for UNION (ALL), INTERSECT and MINUS</a></li>
<li><a rel="nofollow" class="external text" href="http://www.gplivna.eu/papers/sql_set_operators.htm">SQL Set Operators</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r920966791">
/* start https://en.wikipedia.org/ */


.mw-parser-output span.smallcaps{font-variant:small-caps}.mw-parser-output span.smallcaps-smaller{font-size:85%}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="SQL70" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="SQL70" style="font-size:114%;margin:0 4em"><a href="SQL" title="SQL">SQL</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Versions</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="SEQUEL" class="mw-redirect" title="SEQUEL">SEQUEL</a></li>
<li>SQL-86</li>
<li>SQL-89</li>
<li><a href="SQL-92" title="SQL-92">SQL-92</a></li>
<li><a href="SQL%3A1999" title="SQL:1999">SQL:1999</a></li>
<li><a href="SQL%3A2003" title="SQL:2003">SQL:2003</a></li>
<li><a href="SQL%3A2006" title="SQL:2006">SQL:2006</a></li>
<li><a href="SQL%3A2008" title="SQL:2008">SQL:2008</a></li>
<li><a href="SQL%3A2011" title="SQL:2011">SQL:2011</a></li>
<li><a href="SQL%3A2016" title="SQL:2016">SQL:2016</a></li>
<li><a href="SQL%3A2023" title="SQL:2023">SQL:2023</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="SQL_reserved_words" class="mw-redirect" title="SQL reserved words">Keywords</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><span class="smallcaps"><a href="Alias_(SQL)" title="Alias (SQL)">As</a></span></li>
<li><span class="smallcaps"><a href="Case_(SQL)" class="mw-redirect" title="Case (SQL)">Case</a></span></li>
<li><span class="smallcaps"><a href="Create_(SQL)" class="mw-redirect" title="Create (SQL)">Create</a></span></li>
<li><span class="smallcaps"><a href="Delete_(SQL)" title="Delete (SQL)">Delete</a></span></li>
<li><span class="smallcaps"><a href="From_(SQL)" title="From (SQL)">From</a></span></li>
<li><span class="smallcaps"><a href="Group_by_(SQL)" title="Group by (SQL)">Group by</a></span></li>
<li><span class="smallcaps"><a href="Having_(SQL)" title="Having (SQL)">Having</a></span></li>
<li><span class="smallcaps"><a href="Insert_(SQL)" title="Insert (SQL)">Insert</a></span></li>
<li><span class="smallcaps"><a href="Join_(SQL)" title="Join (SQL)">Join</a></span></li>
<li><span class="smallcaps"><a href="Merge_(SQL)" title="Merge (SQL)">Merge</a></span></li>
<li><span class="smallcaps"><a href="Null_(SQL)" title="Null (SQL)">Null</a></span></li>
<li><span class="smallcaps"><a href="Order_by" title="Order by">Order by</a></span></li>
<li><span class="smallcaps"><a href="Window_function_(SQL)" title="Window function (SQL)">Over</a></span></li>
<li><span class="smallcaps"><a href="Prepare_(SQL)" class="mw-redirect" title="Prepare (SQL)">Prepare</a></span></li>
<li><span class="smallcaps"><a href="Select_(SQL)" title="Select (SQL)">Select</a></span></li>
<li><span class="smallcaps"><a href="Truncate_(SQL)" title="Truncate (SQL)">Truncate</a></span></li>
<li></li>
<li><span class="smallcaps"><a href="Update_(SQL)" title="Update (SQL)">Update</a></span></li>
<li><span class="smallcaps"><a href="With_(SQL)" class="mw-redirect" title="With (SQL)">With</a></span></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Edgar_F._Codd" title="Edgar F. Codd">Edgar Codd</a></li>
<li><a href="Relational_database" title="Relational database">Relational database</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">ISO/IEC SQL parts</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li>Framework</li>
<li>Foundation</li>
<li><a href="SQL/CLI" class="mw-redirect" title="SQL/CLI">Call-Level Interface</a></li>
<li><a href="SQL/PSM" title="SQL/PSM">Persistent Stored Modules</a></li>
<li><a href="SQL/MED" title="SQL/MED">Management of External Data</a></li>
<li><a href="SQL/OLB" title="SQL/OLB">Object Language Bindings</a></li>
<li><a href="SQL/Schemata" title="SQL/Schemata">Information and Definition Schemas</a></li>
<li><a href="SQL/JRT" title="SQL/JRT">SQL Routines and Types for the Java Programming Language</a></li>
<li><a href="SQL/XML" title="SQL/XML">XML-Related Specifications</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2023-07-20" href="https://en.wikipedia.org/wiki/?title=Set_operations_(SQL)&amp;oldid=1166298573">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>